package com.youxin.cpcenter.service;

import java.util.List;

import com.youxin.busfoundation.bean.ResponseObject;
import com.youxin.busfoundation.bean.leads.RequestAssignLeadsBean;
import com.youxin.busfoundation.bean.leads.RequestLeadsBean;
import com.youxin.busfoundation.bean.leads.RequestLeadsHistoryBean;
import com.youxin.busfoundation.bean.leads.RequestLeadsPoolBean;
import com.youxin.busfoundation.bean.leads.RequestTransferLeadsBean;
import com.youxin.busfoundation.common.es.bean.CompanyInfoBean;
import com.youxin.cpcenter.bean.MemberQueryListBean;
import com.youxin.cpcenter.model.TbEntLeadsStat;

/**
 * 线索管理
 * @author yingde.cao
 *
 */
public interface LeadsService {
	/**
	 * 添加线索
	 * @param bean
	 * @return
	 */
	ResponseObject addLeads(RequestLeadsBean bean);
	/**
	 * 公司线索池
	 * @param bean
	 * @return
	 */
	public 	ResponseObject listCompanyLeadsPool(RequestLeadsPoolBean bean);
	/**
	 * 个人线索池
	 * @param bean
	 * @return
	 */
	public 	ResponseObject listPersonalLeadsPool(RequestLeadsPoolBean bean);
	/**
	 * 分配线索
	 * @param bean
	 * @return
	 */
	public 	ResponseObject assignLeads(RequestAssignLeadsBean bean);
	/**
	 * 认领线索
	 * @param bean
	 * @return
	 */
	public 	ResponseObject requestLeads(RequestAssignLeadsBean bean);
	/**
	 * 释放线索
	 * @param bean
	 * @return
	 */
	public 	ResponseObject releaseLeads(RequestAssignLeadsBean bean);
	public 	ResponseObject changeLeadsStatus(RequestAssignLeadsBean bean);
	
	public 	ResponseObject transferLeads(RequestTransferLeadsBean bean);
	public 	ResponseObject deleteLeads(RequestAssignLeadsBean bean);
	
	public ResponseObject followList(MemberQueryListBean bean);
	
	ResponseObject leadsHistory(RequestLeadsHistoryBean bean);
	public TbEntLeadsStat getTbEntLeadsStat(long id,long entMemberId);

	/**
	 * 更新公司线索状态
	 * @description 
	 * @param list
	 * @param entMemberId
	 */
	public void updateLeadsStatus(List<CompanyInfoBean> list, long entIdentifyId);


}
